// 定义员工数据结构和功能
#ifndef STAFF_MANAGE_H
#define STAFF_MANAGE_H

#include "../util/LinkedList.h"

struct Staff
{
    int staffNo;           // 员工编号
    char staffName[10];    // 用户名
    char staffPassword[7]; // 登陆密码
    int StaffRole;         // 角色标志
    int StaffState;        // 员工状态
};

// 员工信息打印
// staffPointer: 员工链表指针
void StaffInfoPrint(ListPointer staffPointer);

// 添加员工
// data: 员工链表的最后一个节点数据指针
void *StaffAdd(void *data);

// 员工假删除，修改状态
// staffDataPointer: 员工链表的节点数据指针
int StaffRemove(ListPointer staffDataPointer);

// 员工信息更新
// staffDataPointer: 员工链表的节点数据指针
int StaffUpdate(ListPointer staffDataPointer);

// 员工查询
// staffListHead: 员工链表的头指针
void StaffSearch(ListPointer staffListHead);

// 按员工在职、离职状态查询
// state: 员工状态
// tempPointer: 员工节点指针
// staffDataPointer: 新申请的链表头指针
void StaffSearchByState(int state, ListPointer tempPointer, ListPointer staffDataPointer);

// 根据编号查询员工
// state: 员工状态
// tempPointer: 员工节点指针
// staffDataPointer: 新申请的链表头指针
void StaffSearchByNo(int state, ListPointer tempPointer, ListPointer staffDataPointer);

#endif
